package com.whf.android.jar.constants;


import java.io.Serializable;
import java.util.Objects;

/**
 * 经纬度实体类
 *
 * @author : qf.
 * @since 2.5.0
 */
public final class LatLng implements Serializable {

    /*** 经度  */
    private double lat;

    /*** 纬度  */
    private double lng;

    /*** id  */
    private String id;

    /*** 名称  */
    private String name;

    /*** 其他  */
    private Object other;

    /**
     * 构造
     */
    public LatLng() {

    }

    /**
     * @param lat:经度
     * @param lng:纬度
     */
    public LatLng(double lat, double lng) {
        this.lat = lat;
        this.lng = lng;
    }

    /**
     * @param name:名称
     * @param lat:经度
     * @param lng:纬度
     */
    public LatLng(String name, double lat, double lng) {
        this.name = name;
        this.lat = lat;
        this.lng = lng;
    }

    /**
     * @param lat:经度
     */
    public LatLng setLat(double lat) {
        this.lat = lat;
        return this;
    }

    /**
     * @param lng:纬度
     */
    public LatLng setLng(double lng) {
        this.lng = lng;
        return this;
    }

    public LatLng setId(String id) {
        this.id = id;
        return this;
    }

    public LatLng setName(String name) {
        this.name = name;
        return this;
    }

    public LatLng setOther(Object other) {
        this.other = other;
        return this;
    }

    public double getLat() {
        return lat;
    }

    public double getLng() {
        return lng;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public Object getOther() {
        return other;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        LatLng latLng = (LatLng) o;
        return Double.compare(latLng.lat, lat) == 0 && Double.compare(latLng.lng, lng) == 0;
    }

    @Override
    public int hashCode() {
        return Objects.hash(lat, lng);
    }

}
